home *** CD-ROM | disk | FTP | other *** search
/ SGI Varsity Update 1998 August / SGI Varsity Update 1998 August.iso / dist / ftn90_fe.idb / usr / relnotes / ftn90_fe / ch4.z / ch4
Text File  |  1998-07-29  |  16KB  |  462 lines

  1.  
  2.  
  3.  
  4.                                                - 1 -
  5.  
  6.  
  7.  
  8.                     7.2.1 MIPSpro Fortran 90 Front End Release Notes
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                                - 2 -
  69.  
  70.  
  71.  
  72.                     4.  _C_o_m_p_a_t_i_b_i_l_i_t_y__N_o_t_e_s
  73.  
  74.                     When using the MIPSpro Fortran 90 7.2.1 here are
  75.                     some things regarding compatibility to note.
  76.  
  77.  
  78.                     4.1  _D_i_f_f_e_r_e_n_c_e_s _b_e_t_w_e_e_n _C_r_a_y _F_o_r_t_r_a_n _a_n_d
  79.                          _M_I_P_S_p_r_o _7._2._1 _F_o_r_t_r_a_n _9_0
  80.  
  81.  
  82.  
  83.                     4.1.1  _M_o_d_e_l__d_i_f_f_e_r_e_n_c_e_s   The model for the
  84.                     CF90 REAL(KIND=16) data type on CRAY T90 systems
  85.                     that support IEEE floating-point arithmetic is
  86.                     different from the model for the MIPSpro 7.2.1
  87.                     Fortran 90 compiler.
  88.  
  89.                     The internal size of INTEGER(KIND=1)
  90.                     INTEGER(KIND=2), LOGICAL(KIND=1), and
  91.                     LOGICAL(KIND=2) on the MIPSpro 7.2.1 Fortran 90
  92.                     compiler is one and two bytes, respectively. The
  93.                     CF90 compiler treats these kind type parameters
  94.                     as 4 byte entities on MPP platforms. On PVP
  95.                     platforms they are 8 byte entities.
  96.  
  97.                     The default sizes of the MIPSpro 7.2.1 Fortran
  98.                     90 integer, real, and logical data types are 4
  99.                     bytes. This differs from the CF90 default of 8
  100.                     bytes.  The default size of the MIPSpro 7.2.1
  101.                     Fortran 90 double precision type is 8 bytes
  102.                     compared to the 16 byte default of the CF90.
  103.                     The default data type sizes for the MIPSpro
  104.                     7.2.1 Fortran 90 compiler may be incorrect for
  105.                     routines such as IRTC(3I) and SHMEM.
  106.  
  107.                     The size of pointers in MIPSpro 7.2.1 Fortran 90
  108.                     is either 4 bytes(default) or 8 bytes depending
  109.                     on whether -n32 -or -64 is used on the command-
  110.                     line.  This differs from the CF90 default of
  111.                     64-bits.
  112.  
  113.                     The MIPSpro 7.2.1 Fortran 90 compiler does not
  114.                     support Cray character pointers.
  115.  
  116.                     Pointer arithmetic is in default numeric storage
  117.                     units when using the CF90 compiler. Pointer
  118.                     arithmetic is in bytes when using the MIPSpro
  119.                     7.2.1 Fortran 90 compiler.
  120.  
  121.                     For more information on the model, see the
  122.                     model(3I) man page.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.                                                - 3 -
  135.  
  136.  
  137.  
  138.                     4.1.2  _F_o_r_t_r_a_n__9_0__s_t_a_t_e_m_e_n_t__d_i_f_f_e_r_e_n_c_e_s   When
  139.                     using the MIPSpro 7.2.1 Fortran 90 compiler, the
  140.                     execution of the STOP statement does not cause
  141.                     the word STOP to be written to stdout unless
  142.                     there is an argument to the STOP statement. The
  143.                     CF90 compiler always writes STOP to stdout.
  144.  
  145.                     When using the MIPSpro 7.2.1 Fortran 90
  146.                     compiler, the initialization of entities in a
  147.                     common block in a DATA statement can only be
  148.                     done in one program unit.  That is, if a common
  149.                     block contains two variables initialized in a
  150.                     DATA statement, those DATA statements must be in
  151.                     one program unit. With the CF90 compiler, each
  152.                     variable can be initialized in DATA statements
  153.                     in separate program units.  This follows a
  154.                     stricter interpretation of the Fortran 90 ISO
  155.                     standard.
  156.  
  157.  
  158.                     4.1.3  _F_u_n_c_t_i_o_n_s__a_n_d__p_r_o_c_e_d_u_r_e_s   The CF90
  159.                     typeless functions (such as MASK(3I),
  160.                     SHIFTL(3I), SHIFTR(3I), SHIFT(3I), CVMGT(3I),
  161.                     and so on) are typed as integer functions by the
  162.                     MIPSpro 7.2.1 Fortran 90 compiler. Conversion
  163.                     occur in expressions involving a mixture of
  164.                     floating point and integer functions. When
  165.                     called by the CF90 compiler, these functions are
  166.                     typeless and no conversion occurs when there is
  167.                     a mixture of floating point and these typeless
  168.                     functions. Vfunctions are not supported by the
  169.                     MIPSpro 7.2.1 Fortran 90 compiler.
  170.  
  171.  
  172.                     4.1.4  _M_o_d_u_l_e_s   When using the MIPSpro 7.2.1
  173.                     Fortran 90 compiler, the compilation of Fortran
  174.                     90 modules creates a <file>.mod for each module
  175.                     in the source file. When using the CF90
  176.                     compiler, compiling modules creates one <file>.o
  177.                     that contains all the Fortran 90 modules in the
  178.                     source file.
  179.  
  180.  
  181.  
  182.                     4.1.5  _I_/_O__l_i_b_r_a_r_y   Direct access formatted
  183.                     output files cannot be read as sequential
  184.                     formatted files by MIPSpro 7.2.1 Fortran 90
  185.                     programs unless an assign(1) command with
  186.                      -s unblocked or -F cachea is supplied for the
  187.                     particular file.
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.                                                - 4 -
  201.  
  202.  
  203.  
  204.                     The set of I/O library errors begins at 4000 for
  205.                     MIPSpro 7.2.1 Fortran 90 programs. The error
  206.                     numbers begin at 1000 for CF90 programs.
  207.  
  208.                     The FILENV environment variable must be set for
  209.                     MIPSpro 7.2.1 Fortran 90 programs when using the
  210.                     assign(1) command. For CF90 users, this
  211.                     environment variable need not be set.
  212.  
  213.  
  214.  
  215.                     4.1.6  _L_i_b_r_a_r_y__f_u_n_c_t_i_o_n_s__a_n_d__p_r_o_c_e_d_u_r_e_s   The
  216.                     CRI_IEEE_DEFINITIONS module is available for the
  217.                     MIPSpro 7.2.1 Fortran 90 compiler, but the
  218.                     preferred name is FTN_IEEE_DEFINITIONS for the
  219.                     IEEE module and the interface to the IEEE
  220.                     procedures.
  221.  
  222.                     The PXF_DEFINITIONS module is available for the
  223.                     MIPSpro 7.2.1 compiler to provide the interfaces
  224.                     to the PXF routines. The FTN_LIB_DEFINITIONS
  225.                     module is available for the MIPSpro 7.2.1
  226.                     compiler to provide interfaces to some general
  227.                     library routines such as FLUSH and ABORT.
  228.  
  229.                     The MAXVAL(3I) intrinsic procedure returns
  230.                     negative infinity for a zero-sized input array
  231.                     on when called from a MIPSpro 7.2.1 Fortran 90
  232.                     program and returns -HUGE(3I) when called from a
  233.                     CF90 program.
  234.  
  235.                     The MINVAL(3I) intrinsic procedure returns
  236.                     positive infinity for a zero-sized input array
  237.                     on when called from a MIPSpro 7.2.1 Fortran 90
  238.                     program and returns +HUGE(3I) when called from a
  239.                     CF90 program.
  240.  
  241.  
  242.  
  243.                     4.1.7  _M_a_t_h__l_i_b_r_a_r_y   The results of the math
  244.                     routines from the MIPSpro 7.2.1 Fortran 90
  245.                     compiler may differ from the results returned by
  246.                     the math routines for the CF90 compiler.
  247.  
  248.                     Signaling of errors during references to the
  249.                     MIPSpro 7.2.1 Fortran 90 compiler math routines
  250.                     is not turned off. For the CF90 compiler, the
  251.                     math routines turn off signaling of errors and
  252.                     detect input data errors through source code
  253.                     checks.
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.                                                - 5 -
  267.  
  268.  
  269.  
  270.                     4.1.8  _D_i_r_e_c_t_i_v_e_s   MIPSpro Fortran supports
  271.                     most, but not all of the !MIC$ directives.
  272.                     Optional parameters SINGLE and VECTOR are
  273.                     accepted but ignored.  AUTOSCOPE, is not
  274.                     supported. CASE and ENDCASE are supported but do
  275.                     not run concurrently in this release.
  276.  
  277.  
  278.                     4.1.9  _P_r_e_p_r_o_c_e_s_s_i_n_g   There are two source
  279.                     preprocessors:  cpp and ftpp.  ftpp is used by
  280.                     default for files ending with .F or .F90.  No
  281.                     preprocessing is done for .f or .f90 files.  Use
  282.                     -cpp or -ftpp on the compiler command-line to
  283.                     force preprocessing of all files regardless of
  284.                     extension.
  285.  
  286.  
  287.  
  288.                     4.2  _S_o_u_r_c_e__C_o_d_e__C_o_m_p_a_t_i_b_i_l_i_t_y__w_i_t_h__M_I_P_S_p_r_o__7_._1
  289.  
  290.                     The MIPSpro 7.2.1 compiler is source code
  291.                     compatible with MIPSpro 7.2 and earlier F90
  292.                     compilers, with one exception: The VAX Fortran
  293.                     %LOC intrinsic function (MIPSpro 7.1) has been
  294.                     replaced with the LOC intrinsic function.
  295.  
  296.  
  297.                     4.2.1  _O_b_j_e_c_t__C_o_d_e__C_o_m_p_a_t_i_b_i_l_i_t_y  The MIPSpro
  298.                     7.2.1 compiler is object code compatible with
  299.                     MIPSpro 7.2 but is NOT object code compatible
  300.                     with MIPSpro 7.1 and earlier F90 compilers.
  301.                     Consequently, you must recompile all of the
  302.                     source files in your application if they were
  303.                     previously compiled with the MIPSpro 7.1 (or
  304.                     earlier) compiler. Module files (.kmo files)
  305.                     produced by earlier versions of the F90 compiler
  306.                     (ie: 7.1) are not compatible with the 7.2.1
  307.                     compiler. In addition, as of the 7.2 compiler,
  308.                     modules files have a .mod suffix.
  309.  
  310.  
  311.                     4.2.2  _L_i_s_t__D_i_r_e_c_t_e_d__I_n_p_u_t_/_O_u_t_p_u_t__F_o_r_m_a_t_t_i_n_g   A
  312.                     new set of assign command options allow the
  313.                     program to get a form of list-directed output
  314.                     that is closer to the F77 form but is not
  315.                     exactly the same. With the following assign
  316.                     command, the comma separator, repeat counts, and
  317.                     variable field lengths may be changed.  The "U"
  318.                     option changes the S, W, and y options.  The "-S
  319.                     on" option suppresses use of a comma as a
  320.                     separator.  The "-W on" option suppresses
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.                                                - 6 -
  333.  
  334.  
  335.  
  336.                     compressed field width.  The "-y on" option
  337.                     suppresses repeat counts.  The "-U on" option
  338.                     can be specified first and then one or more of
  339.                     the other three can be changed individually.
  340.                     Thus, "assign -U on -W off g:sf" specifies that
  341.                     all sequentially formatted files will use a
  342.                     comma as a separator and will provide repeat
  343.                     counts for repeated values, but will use not
  344.                     compress the field width for list-directed
  345.                     output.
  346.  
  347.  
  348.                     The form of the PRINT statement with "assign -U on g:sf" is:
  349.  
  350.                                1           1           1           2           2           3   0.3333333      0.3333333333333333
  351.                          3.333333333333333333333333333333E-001
  352.  
  353.  
  354.  
  355.  
  356.                     There are no differences in list-directed input.
  357.  
  358.  
  359.                     4.2.3  _D_i_f_f_e_r_e_n_c_e_s _i_n _C_o_m_p_i_l_e-_T_i_m_e _O_p_t_i_o_n_s
  360.                        The MIPSpro 7.2.1 compiler differs from
  361.                     MIPSpro 7.1 in the compile-time options that it
  362.                     supports. In particular, several optimization
  363.                     option control groups such as -GCM, -SWP and
  364.                     -sopt are no longer supported. The MIPSpro 7.2.1
  365.                     compiler also differs from 7.1 in the default
  366.                     values of variables For more information, please
  367.                     refer to the _f_9_0(1) man pages.
  368.  
  369.  
  370.  
  371.                     4.2.4  _N_e_w _D_e_f_a_u_l_t _A_B_I'_s _f_o_r -_m_i_p_s_3 _a_n_d -_m_i_p_s_4
  372.                     _C_o_m_p_i_l_a_t_i_o_n_s  The MIPSpro 7.2.1(BETA)  compiler
  373.                     will default to the n32 ABI for -mips3 or -mips4
  374.                     compilations that do not specify the ABI on the
  375.                     command line except on R8000 based systems which
  376.                     default to the 64-bit ABI.  You can specify a
  377.                     different ABI for your compilation in three
  378.                     ways:
  379.  
  380.                        +o By using the ABI specifier on the command
  381.                          line (i.e %cc -64 -mips3 foo.c)
  382.  
  383.                        +o By using the SGI_ABI environment variable
  384.                          (i.e. %setenv SGI_ABI -64)
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.                                                - 7 -
  399.  
  400.  
  401.  
  402.                        +o By using a Defaults specification file (See
  403.                          below).
  404.                     For more information, please check the _f_9_0(1)
  405.                     man pages.
  406.  
  407.  
  408.  
  409.                     4.2.5  _D_e_f_a_u_l_t_s__S_p_e_c_i_f_i_c_a_t_i_o_n__F_i_l_e_s  The MIPSpro
  410.                     7.2.1(BETA)  compiler provides a new method by
  411.                     which the user can customize the Application
  412.                     Binary Interface (ABI), instruction set
  413.                     architecture (ISA) and processor type used in
  414.                     compilations where they are not explicitly
  415.                     specified.  Under this method, the
  416.                     COMPILER_DEFAULTS_PATH environment variable can
  417.                     be set to a colon separated list of paths where
  418.                     the compiler will look for a _c_o_m_p_i_l_e_r._d_e_f_a_u_l_t_s
  419.                     file. If no _c_o_m_p_i_l_e_r._d_e_f_a_u_l_t_s file is found or
  420.                     if the environment variable is not set, the
  421.                     compiler looks for /_e_t_c/_c_o_m_p_i_l_e_r._d_e_f_a_u_l_t_s.  If
  422.                     that file is not found either, the compiler
  423.                     resorts to the built-in defaults described in
  424.                     the _f_9_0(1)man pages and above.  For a
  425.                     description of the specification format of this
  426.                     file, please refer to the _f_9_0(1)man pages.
  427.  
  428.  
  429.                     4.3  _C_o_m_p_a_t_i_b_i_l_i_t_y__w_i_t_h__F_o_r_t_r_a_n_7_7_,__C_,__a_n_d__C_+_+
  430.  
  431.  
  432.                     MIPSpro Fortran 90 7.2.1  is object compatible
  433.                     with C and C++ and F77.  However, if objects
  434.                     compiled with f77 and f90 perform I/O to the
  435.                     same unit, (with the exception of unit *) the
  436.                     f77 object must be compiled using the -craylibs
  437.                     option.
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.